Method and system for media-based event generation

ABSTRACT

Systems and methods are described allowing dynamic selection of media items for presentation within a media stream based on dynamically-generated information that describes the content of the media stream or the stream&#39;s consumer. Systems may include meta data servers and media servers that work together to dynamically select media items and dynamically build a media stream containing the selected media items to the consumer. The media items are selected based on dynamically-generated meta data. Such meta data may be generated by previous consumers of the media stream and provide an accurate and dynamic description of the contents of the media stream. Because the media items are dynamically selected based on dynamically-generated meta data, even though the same media stream may be requested by different media consumers, each media stream is individually generated and may be a unique stream that reflects the impressions of previous consumers of the stream.

BACKGROUND

The Internet is increasingly being used to transmit, store, view andshare media files. These media files are sometimes short (two minutes orless) and sometimes longer, sometimes as long as several hours. As mediaconsumers have adopted the use of the Internet for media delivery, thestreaming media on demand, i.e., that is transmitting a stream of mediacontent to the consumer for immediate playback on the consumer's device,has greatly increased.

One benefit of streaming media is that the contents of the media stream,e.g., the distinct media items that combined to make the stream ofmedia, can be selected dynamically and in real-time. For example, aconsumer may request a current events news program be streamed to theconsumer for viewing and the resulting stream may be generated byassembling various independent media items such as news stories whichare then sequentially transmitted to the consumer in as a singlecontinuous stream of media data.

Current streaming media systems have been developed using the televisionstream as a template, and therefore mimic television's model ofinserting seemingly random advertisements into the stream at specifiedpoints in the stream, known as commercial breaks. The advertisementsbear no contextual relationship with the underlying media content andtherefore rarely engage the consumer's attention.

SUMMARY

Systems and methods are described allowing dynamic selection of mediaitems (e.g., advertisements) for presentation within a media streambased on dynamically-generated information that describes the content ofthe media stream or is otherwise relevant to the consumer. Systems mayinclude meta data servers which provide relevant meta data that in someway describes the content of a media stream to aid in the selection ofmedia items. Systems may also include media servers which receive themeta data and select media items based on the meta data received.Because the media items are dynamically selected based ondynamically-generated meta data, even though the same media stream maybe requested by different media consumers, each media stream isindividually generated and may be a unique stream. Not only is eachconsumer provided with a unique experience, each consumer may bepresented with media items selected specifically for that consumer orbased on information known about the stream and/or the consumer.

Methods may include methods of providing relevant meta data based on thepresentation of media streams including information about the user towhom the media stream is being presented, information about users in acommunity with that user, and/or information about the media stream.

In one aspect, the disclosure describes a system which includes a metadata server that selects meta data related to a viewer of a media streambased on where the media stream is in its playback. The system furtherincludes a media server that selects a media item to present with themedia stream based on the meta data, and that transmits the media itemfor presentation to the viewer. The system also may include a mediaplayer that generates the time data and transmits the time data to themeta data server.

The media server may transmit the media item as part of the media streamto the first user. The media stream may include multiple media itemsincluding the dynamically selected media items and media itemspre-selected based on the media stream.

In another aspect, the disclosure describes a method, which could beused by a media server, for dynamically selecting a media item based onthe presentation of a media stream to a viewer. The method includesreceiving an annotation associated with a media item, in which theannotation was selected based on the presentation of the media stream tothe viewer. The annotation was selected in response to the presentationof the media stream reaching a user-assigned time associated with theannotation. The method then selects a media item based on the receivedannotation and transmits the selected media item for presentation to theviewer with the media stream. The selected media item may be anadvertisement. The annotation may be an annotation created by the vieweror by an earlier viewer.

In another aspect, the disclosure describes a method for selecting anannotation from a set of annotations, which can then be used to select amedia item. The method includes receiving a plurality of user-createdannotations associated with media items in a media stream. Theannotations are dynamically generated from viewers of the associatedmedia items. In the method, a time trigger is then received which wasgenerated as a result of a presentation of the media stream. While themedia stream is still be presented, the method selects a user-createdannotation from the plurality of user-created annotations based on thereceived time trigger and transmits the selected user-created annotationto a media server for use in a selection of a media item forpresentation along with the media stream.

These and various other features as well as advantages will be apparentfrom a reading of the following detailed description and a review of theassociated drawings. Additional features are set forth in thedescription which follows, and in part will be apparent from thedescription, or may be learned by practice of the described embodiments.The benefits and features will be realized and attained by the structureparticularly pointed out in the written description and claims hereof aswell as the appended drawings.

The following description of various embodiments is merely exemplary innature and is in no way intended to limit the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an embodiment of a system for providing dynamic media basedevent generation.

FIG. 2 shows a flow chart of an embodiment of a method for selecting andpresenting a media event with a media stream.

FIG. 3 shows a flow chart of an embodiment of a method for selectingannotations based on a time trigger.

DETAILED DESCRIPTION

The following description of various embodiments is merely exemplary innature and is in no way intended to limit the disclosure. While variousembodiments have been described for purposes of this specification,various changes and modifications may be made which will readily suggestthemselves to those skilled in the art and which are encompassed in thedisclosure.

As described above, the Internet is increasingly being used to transmit,store, view and share media. Entire online communities are developingwhich allow uploading, viewing, sharing, rating and linking to mediaitems. These communities may use annotations to describe or categorizemedia items, and even specific segments within media items.

As used herein, the term “annotation” should be understood to includeany information describing or identifying a media item that wasdynamically created to describe the media item. Thus, broadly speakingan annotation is a type of meta data that describes or otherwise relatesto a media item. An annotation is distinct from any descriptioninformation that may be contained in the media item, such asdescriptions created by the creator of the media item. Annotations aredynamically created by a viewer of the media item to describe the mediaitem or some dynamically selected segment within the media item.Examples of annotations include tags, as understood by those in the art.Other examples which may be used as annotations include hyperlinks,images, video clips, avatars or other icons, emotion icons, (e.g.“emoticons”) or other representations or designations.

Annotations may further include information identifying a specificsegment of a media item or a discrete temporal point within the playbackof the media item. Such segments may be defined in many different wayssuch as by identifying a start time and an end time or a duration. Othermethods of defining and/or identifying segments within a media item areknown in the art and any suitable method may be used with the systemsand methods described herein. Annotations may also include spatialinformation identifying specific areas of a video frame as displayed toa consumer, e.g., information identifying the top half of the videoframe or some other area.

Annotations could be created as a result of a user explicitly tagging amedia item or as a result of a user sharing a portion of the media itemwith another user. In an embodiment, such tags associate a word or groupof words with a portion of the media item marked by in time, out timeand optionally x and y coordinates. Such tags may be stored in a metadata server or annotation datastore and may be changed at any point intime without altering the underlying media.

The term “media item” as used herein may include any discrete mediaobject (e.g., a media file), now known or later developed, includingvideo files, games, audio, streaming media, slideshows, moving pictures,animations, or live camera captures. A media item may be presented,displayed, played back, or otherwise rendered for a user to experiencethe media item.

The terms “media stream” and “stream” refers to a stream of media datathat includes at least two media items transmitted in a sequence fromone device to another device as a single, continuous communication. Thestream may be stored on the receiving device for later rendering (e.g.,playback or viewing) or may be rendered by the receiving device as it isreceived.

As described above, the systems and methods described in this disclosurerelate to the dynamic selection of at least some media items in a mediastream at the time the stream is being generated. For example, if aconsumer requests a stream of current events news programming, theresults stream may include various news-related media items which maynot necessarily be dynamically selected and one or moredynamically-selected media items such as advertisements. In order todistinguish between media items that are dynamically selected and thosethat may be determined by the consumer's request, dynamically-selectedmedia items will be referred to as “media events” and “events” wherenecessary to avoid confusion.

FIG. 1 shows an embodiment of a system 100 for providing dynamicmedia-based event generation. The embodiment shown can provide a userwith media events (e.g., advertisements) based on a user-createdannotation associated with a media stream being presented to a user. Forexample, a user who is watching a playback of a stream of video mediaitems (or generally any media stream) may affect through annotations andother meta data the selection of advertisements presented along with theplayback.

FIG. 1 illustrates an embodiment of a system that includes threecomputing devices: a meta data server 104, a media server 102 and arendering device 106. In the embodiment shown, each device is acomputing device. For the purposes of this disclosure, a computingdevice is a device that includes a processor and memory for storing andexecuting software instructions, typically provided in the form ofdiscrete software applications. Computing devices may be provided withoperating systems that allow the execution of software applications inorder to manipulate data.

In an alternative embodiment, the rendering device 106 is not acomputing device, but rather a purpose-built electronic device that doesnot execute software instructions when rendering media content.

The architecture illustrated in FIG. 1 is sometimes referred to asclient/server architecture in which the rendering device 106 (referredto as a “client” 106) issues media requests to a remote computing device(referred to as a “server” because it “serves” media in response to therequest), which responds by transmitting the requested media content tothe client 106 for rendering. The systems and methods described hereinare suitable for use with other architectures as will be discussed ingreater detail below.

In the embodiment shown, the client 106 is a computing device, such as apersonal computer (PC), web-enabled personal data assistant (PDA) asmart phone, a media player device such as an IPOD, or a smart TV settop box. The client 106 is connected to the servers 102, 104 by anetwork such as the Internet via a wired data connection or wirelessconnection such as a wi-fi network, a WiMAX (802.16) network, asatellite network or cellular telephone network.

The client 106 includes an application 108 for receiving and renderingmedia content. Such applications are commonly referred to as a mediaplayer 108. Examples of media players include WINDOWS MEDIA PLAYER andYAHOO! MUSIC JUKEBOX. In the embodiment shown, the media player 108,when executed, generates a graphical user interface (GUI) attached to orpart of the client 106. The GUI includes a set of user-selectablecontrols through which the user of the client device can interact tocontrol the rendering of the media and also to annotate the stream. Byselection of these controls, the user may cause the client 102 to obtainand render media content from local storage or from the media server 102and control the rendering of the media to the user.

In the embodiment shown in FIG. 1, the media player 108 generates timeinformation as it renders or otherwise presents media items to a user.In an embodiment, the a small javascript function may be provided for orincluded with the media player 108 for this function.

The generated time information is then transmitted to the meta dataserver 104. The time information received may be, for example, thepresent playback time of a media stream, which is presented to a user inthe media player 108. The meta data server 104 may use time informationreceived to select a user-created annotation based on the timeinformation. The annotations are stored in and retrieved from adatastore accessible to the meta data server 104, which in theembodiment shown is illustrated by the annotation database 114.

The terms “time,” “time data,” and “time information,” as used herein,with respect to times within media, are references to a temporalposition within a media item/stream playback. For example, uninterruptedpresentation of a media stream at the intended playback rate results ina series of “times” being reached by the media stream. The timeinformation, either in the form of a timestamp, a flag, or some otherindicator, are transmitted from the media player 108 as the media player108 renders the media. Time information may also include an identifierof the media stream being rendered and/or the media item within themedia stream.

In an embodiment, the media player 108 may transmit time information tothe meta data server 104. The term “presentation” as used herein, withrespect to media items/streams, includes rendering or display of themedia items/streams through any means to the consumer, e.g., the user ofthe client 106, that results in the generation of time information. Forexample, the time information may be generated as the result of thenormal playback of the media or may be generated in response to ahigh-speed rendering/fast forwarding or even as a result of the user“dragging” or “scrubbing” a present time marker on a timeline in the GUIof the media player 108 to and/or across the particular time.

The media player 108 also may transmit information about what action(s)resulted in the generation of the time information (e.g., by playback atregular speed, fast forwarding, scrubbing backwards, etc.). In anotherembodiment, the media player 108 may transmit information about aparticular time being approached. For example, a meta data server 104may use information about events leading up to a particular time.Information may be transmitted from the player 108 about eventssurrounding a user who stopped playback before the particular time, auser who scrubbed away from the particular time, and a user who viewednormal playback until near a particular time, then scrubbed past thatparticular time. Any of the information transmitted by the player 108may be used by the meta data server 104 to retrieve and/or createrelevant meta data related to the presentation of the media stream. Inevent, this allows the meta data server 104 to collect usage historydata from the consumers of the media items rendered by the media player108. By analyzing this time information usage history data, the metadata server 108 may deduce information such as the relative popularityof different sections of a media item and different media items with astream.

The meta data server 104 receives this time information from the mediaplayer 108 and, using that information, selects one or more annotationsfrom the database 114 and transmits them to the media server 102. Forexample, as a media player 108 renders a media item of a media stream,it sends a piece of time information indicating that it just renderedsome point of the media item to the consumer. The meta data server 104then identifies one or more annotations that are associated with thatpoint of the media item. The meta data server 104 then selects one ormore of the associated annotations and transmits them to the mediaserver 102.

The reader should note that over time the meta data server 104 will bereceiving annotations as they are dynamically created by consumers.These dynamically-generated annotations may be received by the meta dataserver 104 or by another system (not shown) and stored, such as in theannotation database 114 shown. Thus, even when a consumer renders apreviously viewed media item at some later time, the annotationsidentified by the meta data server 104 are likely to be different.

The meta data server 104 may also correlate time information withinformation about the media item currently being rendered by the client106. The meta data server 104 may correlate time information with themedia stream and/or media items in the media stream in order to select(e.g., retrieve from memory) relevant annotations which may be used bythe media server 102 to select relevant media events (e.g.,advertisements) for addition to the media stream currently beingtransmitted to the client 106. Thereby, the meta data server 104 candynamically aid in the creation of a relevant stream of media items anddynamically-selected media events.

In the embodiment shown, a feedback loop may be established between themeta data server 104, the media server 102, and the media player 108. Inone embodiment, the media player 108, by transmitting time informationduring presentation of a media stream, may trigger certain annotationsto be sent from the meta data server 104 to the media server 102. Thoseannotations may trigger certain media events to be subsequentlytransmitted for presentation as part of a media stream by the mediaplayer 108. This may in turn through the presentation of the mediaevents trigger more, possibly different annotations subsequently causingthe selection of additional media events.

In another embodiment, a user experiencing the presentation of the mediastream may participate in a feedback loop between meta data server 104,media server 102 and player 108. The user participates by performingsome action related to a media item from a media stream which triggersinformation transmitted to the meta data server 104 which results inannotations being transmitted to the media server 102. For example, auser may enter a user-generated tag such as “ZZZZ” to indicate that amedia item is uninteresting as the media item is transmitted to themedia player 108 as a part of media stream and rendered by the mediaplayer 108.

In an embodiment, media events selected and transmitted for presentationwith a media stream may be included with the media stream, and maythereby be considered to modify the media stream (e.g., throughinserting into a “commercial break” in the media stream). However, itshould be noted that the media events selected and transmitted by theprocesses and systems described herein need not be transmitted as partof the media stream initially selected for presentation to the user. Forexample, these media events may be transmitted as a separatecommunication or a separate media stream to the media player 108 or someother application on the client 106 for rendering to the user in adifferent window or in a different manner independent from the renderingof the original media stream.

In one embodiment, the meta data server 104 may correlate the timeinformation received with information known about the user to whom themedia stream is currently being presented. The meta data server 104 mayuse this correlation in order to determine if there is a user-createdannotation related to the media stream (and/or individual media item)being presented to the user. For example, the user to whom the mediastream is being presented may belong to a community of users, and someof the community of users may have already viewed the media stream andcreated annotations for a media item in the media stream.

In the embodiment shown, the meta data server 104 sends the selectedannotation(s) to the media server 102 to aid in the selection of mediaevents to aid in the creation of the media stream itself. In addition,the meta data server 104 may send time information, including the timeinformation used in selecting the annotation, information about themedia item associated with the annotation, and/or user information tothe media server 102. The media server may use some or all of thisinformation in selecting an additional media event for transmission tothe client 106, along with the media stream being presented to the user.

In the embodiment shown, the media server 102 selects an appropriatemedia event using the meta data received from the meta data server 104and subsequently transmits it to the media player 108. The media eventsare stored in and retrieved from a datastore accessible to the mediaserver 102, which in the embodiment shown is illustrated by the eventdatabase 112. This database 112 may, or may not, be the same datastorethat stores regular media items that appear in a media stream not as aresult of dynamic selection. For example, the database 112 could be adatabase containing only advertisements for use as media events.Alternatively, all media items including those that may be selected asmedia events by the media server 102 may be stored in the database 112together.

In one embodiment, a media player 108 may be operated on a remotecomputing device as a standalone player. For example, a standaloneplayer may be a media player module which receives a media stream from alocal source, such as a local hard drive or local optical drive. Thestandalone player 108 may then transmit time information to meta dataserver 104. In this embodiment, meta data server 104 may selectannotations, as described further above, and transmit 106 them to mediaserver 102, which then, in turn, selects one or more media items, asdescribed above, and transmits them to the player 108 for presentationto the user in connection with the playback of the media item by thestandalone player 108.

In one embodiment (not shown), meta data server 104 and media server 102may be co-located on a single computing device or similar unifiedcomputing architecture. As illustrated in FIG. 1, media server 102 andmeta data server 104 are illustrated as separate units and discussed asseparate computing elements for the purpose of describing the respectiveselections made by meta data server 104 and by media server 102 and thecommunications between the two servers. However, it will be appreciatedwith those with skill in the art that the separate computing elementsmay occur in software, hardware, and or/firmware modules located withina single computing device, and communications there-between may occuracross modules, within modules, or in any combination thereof. Forexample, in an alternative embodiment media player 108 transmits timeinformation to media server 102, and media server 102 transmits arequest for annotations associated with the time information to the metadata server 104. Thus, various functions described with reference to theembodiment shown in FIG. 1 may be distributed between differentcomputing devices. As another example, meta data server 104 may transmitmeta data (e.g., annotations) to media server 102 and media player 108,respectively, in response to time information received by the meta dataserver.

Elements of the systems described herein may be implemented in hardware,software, firmware, any combination thereof, or in another appropriatemedium. The systems described herein may implement methods describedherein. In addition, methods described herein when implemented inhardware, software, firmware, any combination thereof, or in anotherappropriate medium may form systems described herein.

The descriptions of the methods and systems herein supplement each otherand should be understood by those with skill in the art as forming acumulative disclosure. Methods and systems, though separately claimedherein, are described together within this disclosure. For example, theparts of the methods described herein may be performed by systems (orparts thereof) described herein.

In addition, the methods described herein may be performed iteratively,repeatedly, and/or in parts, and some of the methods or parts of themethods described herein may be performed simultaneously. In addition,elements of the systems described herein may be distributedgeographically or functionally in any configuration.

FIG. 2 shows a flow chart of an embodiment of a method 200 for selectingand presenting a media event with a media stream based on media items inthe stream. In one embodiment, the method 200 may be performed by amedia server, such as described above, as the media server istransmitting the stream from the presentation of which the events aregenerated.

In the embodiment shown, as a media stream is being transmitted adynamic annotation is received based on the presentation of that mediastream to a user in receive annotation operation 202. For example, theannotation may be received from a separate process that analyzes timeinformation derived from the presentation of the media stream to theuser, such as that described as being performed by the meta data server104 in FIG. 1. The dynamic annotation may have been selected based ontime information or based on some other information.

The dynamic annotation is then used to select a media event in an eventselection operation 204. The selection may be performed based on apredetermined correlation of the annotation with specific media eventsor may be a more analytical procedure involving a relevancy analysisbased on a comparison of the annotation with information associated withpotentially selectable media events. For example, a media event, whichis related to the user-created annotation, may be related based on atopical relevancy of the file to the user-created annotation (e.g., boththe event and the user-created annotation are about cycling).Alternatively, the media event may be selected based on an associationof a particular annotation with a target demographic for a media event.For example, a user-created annotation such as “yachting,” may beassociated with a wealthy demographic which in turn identify that mediaevents targeting that demographic, such as containing advertisements forluxury goods.

As another example, media events may be related to user-createdannotations based on usage histories of users, including usage historiesof individual users, usage histories of a plurality of users, and usagehistories aggregating the individual usage histories of a large numberof users. Usage data may include viewing histories of media streamsand/or individual media items aggregated into media streams. Usage datamay include histories of annotations added to media items and/or mediastreams. Usage data also may include histories of sharing of media itemsand/or media streams with other users. Usage data may also includerelated information to a use of a media item/stream, such as informationabout time of use, and information about related operations (e.g.,programs used concurrently, messages sent during use of a media item).

The selecting operation 204 may be performed determinatively,semi-randomly, and/or stochastically. For example, a media event may beselected using a semi-random or a stochastic process for the purpose ofintroducing different correlations between media items selected (e.g.,advertisements, sponsored media items). As another example,strictly-deterministic criteria may also be employed for selecting amedia event based on a user-created annotation.

In the embodiment shown, the media event selected is inserted into aportion of the media stream or otherwise included with the media steamin an insertion operation 206. The media event may be inserted in anumber of ways, including through inserting the media event at somelocation within another media item such that a user would experience apresentation of the media stream as containing a commercial break. Othertypes of insertion are also possible, such as inserting the media eventbetween two adjacent media items in the media stream.

The media event is then transmitted at the appropriate time relative tothe media stream for presentation by the media player in an eventtransmission operation 208. In an alternative embodiment, the mediaevent may be transmitted separately from the media stream. For example,advertisements or other media events may be presented alongside themedia stream in a separate frame designated for media events. In anotherembodiment (not shown), advertisements or other media events may betransmitted for presentation alongside the media stream in a pop-upwindow, which is separate from a window in which the media stream isbeing presented.

In the embodiment shown, an optional operation 210 is included in whicha user-created annotation, which may be the annotation provided in thereceive annotation operation 202, is transmitted for presentation to thefirst user. This annotation transmission operation 210 allows the mediaplayer to render or otherwise present the annotations associated withtransmitted media items and segments to the user. The annotation may betransmitted as part of the media stream, e.g., with its associated mediaitem, or separately from the stream, depending on how the media playeris designed.

It should be noted that, depending on the embodiment, the media streammay be transmitted from a source different from the source thattransmits the annotation. For example, in an embodiment, the mediastream and the annotation may be transmitted for presentation to a userfrom the media server. In an alternative embodiment, the user-createdannotation may be transmitted from the meta data server.

Transmitting may be performed in any manner known to those with skill inthe art, or a manner later developed, including, for example,transmission over a publicly-accessible network or via radio waves.

A feedback loop may be established, at least partially, using theembodiment of the method 200 shown in FIG. 2. For example, upontransmitting 208 a media event (e.g., an advertisement) for presentationto a user with a media stream, the user may select the media item andbegin a further presentation or a secondary presentation of a differentmedia stream (e.g., by terminating the presentation of the originalmedia stream and initiating the presentation of the new media stream orby opening a separate window via the selection), and thereby the usermay trigger further user-created annotations to be received in thereceive annotation operation 202.

As another example, a user may annotate or other perform an action thatresults in an annotation being associated with the currently renderedmedia items. This annotation may be immediately transmitted to the mediaserver and received in the receive annotation operation 202 so that themedia stream may be modified in response to the user's feedback asdocumented by the annotation. Because a user may dynamically affectmedia items presented with a media stream, a feedback loop may becreated between the presentation to a user of a media stream, the user'sactions with respect to the media stream (and/or media items presentedwith the media stream), and the selection of those media items forfuture presentation to the user.

FIG. 3 shows a flow chart of an embodiment of a method 300 for selectingannotations based on a time trigger. In one embodiment, a meta dataserver, as described above, may implement a method similar to method 300shown. In an alternative embodiment, a combined server (e.g., acomputing device performing meta data server and media server functionsas described in FIG. 1) may implement a method similar to method 300 incombination with a media event selection method, such as that describedwith reference to FIG. 2.

In the method 300 shown, a meta data server has access to a database orother data store of annotations. Each annotation is associated with atleast one media item. In the embodiment shown in FIG. 3, the collectingof these annotations is illustrated by receive annotations operation302. As described above, the annotations may be received as the resultof explicit submittal of annotations to the system or may be generatedbased on previous actions performed by users related to a media item.

The meta data server subsequently receives a time trigger generated by aclient as a result of the presentation of a media item, individually oras part of media stream, to a user in a receive time trigger operation304. The time trigger may be triggered from a presentation of a mediastream having reached a user-assigned time or may be time informationthat simply reports the current status of the presentation. As describedfurther above, a user-assigned time may not have to be exactly reachedby a presentation in order for a time trigger to be created (e.g.,triggered). Also as described further above, a presentation may be movedfrom one time to another via playback of a media stream as well asthrough user-controlled scrubbing or dragging through the media stream.

In an embodiment, the time trigger is received from the media playerthat is presenting the media stream to the user. In an alternativeembodiment, a time trigger may be received from a media server that istransmitting (e.g., streaming) the media stream to the client. In yetanother embodiment, a time trigger may be created by an entity withknowledge of the presentation of the media stream such as anotherapplication running on the client that is monitoring the presentation ofthe media stream and transmitting time triggers.

A user-created annotation is then selected in a selection operation 306based on the received time trigger. The selection may be based oninformation known about the user that is viewing a media item in themedia stream. For example, the media stream may include a media itemassociated with an annotation that was originally created by the vieweror was created by a different user that is associated with the viewer.For example, the current viewer and a previous user that supplied anannotation may be in a community of users. Based on this association,the annotation generated by the previous user may be considered morerelevant and therefore selected from other annotations for the samemedia item. Furthermore, usage history for users in the viewer'scommunity that may have already generated (explicitly or otherwise)annotations associated with the time trigger received may be aggregatedand used to identify one or more annotations that are popular within thecommunity.

The community may be defined as the community of all viewers or may belimited to a very small community to which the current viewer is amember. The user may have actively joined the community or may beconsidered by the system to be within the community based on informationknown about the viewer. Thus, a viewer with a known history ofpurchasing disco music may be part of a disco community for the purposesof annotation selection.

The selection may also be made based primarily on the time trigger andmedia item. For example, the operators of the system may have certainannotations assigned to specific media items. Such assignments may havebeen made for product placement purposes or based on the operator'sdynamic creation of an annotation for that media item or segment. Thus,an operator that provides new-related media streams may initiallyannotate the media items for the stream so that for the first fewviewers of the media stream the system will have at least someannotation to select.

In the embodiment shown, after a user-created annotation is selected,the annotation is then transmitted to the media server in a transmitannotation operation 308. The media server, as described above, thenuses the annotation as a basis for selecting a media event (e.g., anadvertisement). In an alternative embodiment, the transmit annotationoperation 308 may transmit the annotation to a different server, such asan advertisement server, which selects the media event. In yet anotherembodiment, the transmit annotation operation 308 may transmit theannotation to the one embodiment, the user-created annotation may betransmitted to a media server, such as further described above. Themethod 300, via transmitting the user-created annotation, can providefor dynamic selection and presentation of media items with a mediastream based on the media which is being presented to the user and basedon particular usage data and/or user-created annotations related to thatmedia.

Those skilled in the art will recognize that the methods and systems ofthe present disclosure may be implemented in many manners and as suchare not to be limited by the foregoing exemplary embodiments andexamples. In other words, functional elements being performed by asingle or multiple components, in various combinations of hardware andsoftware or firmware, and individual functions, can be distributed amongsoftware applications at either the client or server level or both. Inthis regard, any number of the features of the different embodimentsdescribed herein may be combined into single or multiple embodiments,and alternate embodiments having fewer than or more than all of thefeatures herein described are possible. Functionality may also be, inwhole or in part, distributed among multiple components, in manners nowknown or to become known. Thus, myriad software/hardware/firmwarecombinations are possible in achieving the functions, features,interfaces and preferences described herein. Moreover, the scope of thepresent disclosure covers conventionally known manners for carrying outthe described features and functions and interfaces, and thosevariations and modifications that may be made to the hardware orsoftware or firmware components described herein as would be understoodby those skilled in the art now and hereafter.

While various embodiments have been described for purposes of thisdisclosure, various changes and modifications may be made which are wellwithin the scope of the present disclosure. Alternative embodiments ofmethods and systems described herein are also possible in which some orall of the operations are performed in a different order or distributedbetween different devices than those described above. Numerous otherchanges may be made which will readily suggest themselves to thoseskilled in the art and which are encompassed in the spirit of thedisclosure and as defined in the appended claims.

What is claimed is:
 1. A computer implemented method comprising:receiving, at a computing device, a plurality of user-createdannotations associated with media items in a media stream, theuser-created annotations created by viewing users of the media items,each user-created annotation associated with a media item of said mediastream; receiving, at the computing device, a time trigger generated asa result of a presentation of the media stream; selecting, via thecomputing device, a user-created annotation from the plurality ofuser-created annotations based on the received time trigger and usagehistory information related to the media stream, said selection of theuser-created annotation further comprising: identifying that a firstuser is viewing the presentation of the media stream; selecting auser-created annotation received from a second user different from andassociated with the first user; determining that the first user is partof a community of users that includes the second user; and selecting,based on a usage history of the community of users including the firstuser and the second user, a user-created annotation received from one ormore users in the community; and transmitting, over a network, theselected user-created annotation to a media server for selection of anassociated media item, wherein the selected media item is transmittedalong with the media stream.
 2. The method of claim 1, wherein thesecond media item is an advertisement.
 3. The method of claim 1, whereinthe user-created annotation is an annotation created by the first user.4. The method of claim 1, wherein selecting the user-created annotationfurther comprises: selecting a user-created annotation received from thefirst user.
 5. The method of claim 1, further comprising: selecting asecond media item for inclusion in the media stream based on theselected user-created annotation, said selection of the second mediaitem comprising identifying the user-created annotation based on usagehistory information related to the media stream; and transmitting, overa network, the second media item to the first user with the mediastream.
 6. The method of claim 5, wherein selecting the second mediaitem is further based on usage information of the first user.
 7. Themethod of claim 5, wherein selecting the second media item is furtherbased on usage information of the second user.
 8. The method of claim 5,further comprising: before transmitting the second media item, insertingthe second media item into the media stream; wherein transmitting thesecond media item is performed via transmitting the media stream.
 9. Themethod of claim 5, wherein transmitting the second media item furthercomprises: transmitting the second media item and an indication that thesecond media item be presented in a first display window separate from asecond display window presenting the media stream on a display of a usercomputing device.